package sma.organizations.messages;

import javax.vecmath.Vector2d;
import org.janusproject.kernel.message.Message;

/**
 * Cette classe de message, montre vers ou ne pas aller :
 * 
 * Depuis 
 * 
 * @author Etienne
 * @version 0.3
 * @since 0.1
 */
public class RepulsiveMessage extends Message {
	/**
	 * La position courante du Repulsive :
	 */
	private Vector2d position;
	
	/**
	 * l'id de l'obstacle :
	 */
	private int id;
	
	/**
	 * Le groupe de l'obstacle
	 */
	private int groupe;

	/**
	 * Le statut de l'agent
	 * a prendre en compte ou
	 * a supprimer
	 */
	private boolean active;
	
	/**
	 * Le constructeur
	 * @param _id l'id de l'agent
	 * @param _groupe le groupe de l'agent, permettra de ne prendre en compte
	 *  que ceux qui concernent les agents Decisive
	 * 
	 * @param _position
	 *            on donne la position courante du repulsive
	 */
	public RepulsiveMessage(int _id, int _groupe, Vector2d _position) {
		this.position = _position;
		this.groupe = _groupe;
		this.id = _id;
		this.active = true;
	}

	/**
	 * Le constructeur
	 * @param _id l'id de l'agent
	 * @param _groupe le groupe de l'agent, permettra de ne prendre en compte
	 *  que ceux qui concernent les agents Decisive
	 * @param _position
	 *            on donne la position courante du repulsive
	 * @param _active
	 *            a ajouter ou supprimer
	 */
	public RepulsiveMessage(int _id, int _groupe, Vector2d _position, boolean _active) {
		this.position = new Vector2d(_position);
		this.groupe = _groupe;
		this.id = _id;
		this.active = _active;
	}

	/**
	 * @return the position
	 */
	public Vector2d getPosition() {
		return position;
	}

	
	/**
	 * @return the status
	 */
	public boolean getActive() {
		return this.active;
	}
	
	/**
	 * @return renvoie l'id de l'agent
	 */
	public int getId() {
		return this.id;
	}

	/**
	 * @return the groupe
	 */
	public int getGroupe() {
		return groupe;
	}
}
